Amazon QuickSight でテーブルに行番号を表示させる方法の紹介
QuickSight で行番号付きのテーブルを作成をするにはどうしたら良いのでしょうか?
サンプルデータとして私の毎月の AWS 利用費のデータを元にテーブルの作成を紹介します。
可視化に必要なデータの準備
私の環境を例に説明しますので基本となるmonth
とcost
フィールドを説明します。
month
フィールドは年月が格納されたフィールドcost
フィールドは AWS 利用費が格納されたフィールド
計算フィールドの作成
ビジュアルタイプはテーブル形式で過去 1 年分の年月(month
)と、AWS利用費(cost
)を表示しました。
month
列の左側に行番号を表示したいだけなのですが、テーブルに行番号を表示する機能がありません。計算フィールドを利用して関数で行番号を求めないといけません。
必要な計算式
明示的に指定した項目に対して何番目に位置するかを関数を使って求めます。Excel の様に行に対して項番を振ってくれるわけではありません。
今回は例として AWS 利用費の多かった順に項番を振る計算フィールドを作成します。
この式はcost
に対して降順ソート(DESC
)した結果に対し、rank
関数で何番目の位置なのかを求めています。
rank([sum(cost) DESC])
テーブルに項番を表示
作成した計算フィールド(row_rank
)をテーブルに表示しました。コストの高い順にソートされていると、擬似的な行番号として利用できます。
擬似的な行番号というのも計算式の中でcost
に対して順位を求めているため、たとえばcost
以外の年月(month
)でソートすると行番号としては機能しません。
なにかの順位を固定表示しておく用途でテーブルに項番が表示されて欲しいときもあるかと思いますが、そのときは何でソートするのかを考えて計算フィールドを作る必要があるようです。
利用者が分析のためにドリルダウンや、ソートを変更したら項番が崩れるのでそういった要素で使うのは難しいと思っています。
おわりに
QuickSight ではじめて BI ツールに触れたのですが、Excel やスプレッドシートで簡単にできることができなくて Excel でやっていたことを QuickSight に求めているのがナンセンスなのか!?と考えるときがしばしばあります。